﻿/*
 Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
(function () {
  function c(b) {
    var c = this instanceof CKEDITOR.ui.dialog.checkbox;
    b.hasAttribute(this.id) &&
      ((b = b.getAttribute(this.id)),
      c
        ? this.setValue(e[this.id]['true'] == b.toLowerCase())
        : this.setValue(b));
  }
  function d(b) {
    var c = '' === this.getValue(),
      a = this instanceof CKEDITOR.ui.dialog.checkbox,
      d = this.getValue();
    c
      ? b.removeAttribute(this.att || this.id)
      : a
      ? b.setAttribute(this.id, e[this.id][d])
      : b.setAttribute(this.att || this.id, d);
  }
  var e = {
    scrolling: { 'true': 'yes', 'false': 'no' },
    frameborder: { 'true': '1', 'false': '0' },
  };
  CKEDITOR.dialog.add('iframe', function (b) {
    var f = b.lang.iframe,
      a = b.lang.common,
      e = b.plugins.dialogadvtab;
    return {
      title: f.title,
      minWidth: 350,
      minHeight: 260,
      onShow: function () {
        this.fakeImage = this.iframeNode = null;
        var a = this.getSelectedElement();
        a &&
          a.data('cke-real-element-type') &&
          'iframe' == a.data('cke-real-element-type') &&
          ((this.fakeImage = a),
          (this.iframeNode = a = b.restoreRealElement(a)),
          this.setupContent(a));
      },
      onOk: function () {
        var a;
        a = this.fakeImage
          ? this.iframeNode
          : new CKEDITOR.dom.element('iframe');
        var c = {},
          d = {};
        this.commitContent(a, c, d);
        a = b.createFakeElement(a, 'cke_iframe', 'iframe', !0);
        a.setAttributes(d);
        a.setStyles(c);
        this.fakeImage
          ? (a.replace(this.fakeImage), b.getSelection().selectElement(a))
          : b.insertElement(a);
      },
      contents: [
        {
          id: 'info',
          label: a.generalTab,
          accessKey: 'I',
          elements: [
            {
              type: 'vbox',
              padding: 0,
              children: [
                {
                  id: 'src',
                  type: 'text',
                  label: a.url,
                  required: !0,
                  validate: CKEDITOR.dialog.validate.notEmpty(f.noUrl),
                  setup: c,
                  commit: d,
                },
              ],
            },
            {
              type: 'hbox',
              children: [
                {
                  id: 'width',
                  type: 'text',
                  requiredContent: 'iframe[width]',
                  style: 'width:100%',
                  labelLayout: 'vertical',
                  label: a.width,
                  validate: CKEDITOR.dialog.validate.htmlLength(
                    a.invalidHtmlLength.replace('%1', a.width)
                  ),
                  setup: c,
                  commit: d,
                },
                {
                  id: 'height',
                  type: 'text',
                  requiredContent: 'iframe[height]',
                  style: 'width:100%',
                  labelLayout: 'vertical',
                  label: a.height,
                  validate: CKEDITOR.dialog.validate.htmlLength(
                    a.invalidHtmlLength.replace('%1', a.height)
                  ),
                  setup: c,
                  commit: d,
                },
                {
                  id: 'align',
                  type: 'select',
                  requiredContent: 'iframe[align]',
                  'default': '',
                  items: [
                    [a.notSet, ''],
                    [a.left, 'left'],
                    [a.right, 'right'],
                    [a.alignTop, 'top'],
                    [a.alignMiddle, 'middle'],
                    [a.alignBottom, 'bottom'],
                  ],
                  style: 'width:100%',
                  labelLayout: 'vertical',
                  label: a.align,
                  setup: function (a, b) {
                    c.apply(this, arguments);
                    if (b) {
                      var d = b.getAttribute('align');
                      this.setValue((d && d.toLowerCase()) || '');
                    }
                  },
                  commit: function (a, b, c) {
                    d.apply(this, arguments);
                    this.getValue() && (c.align = this.getValue());
                  },
                },
              ],
            },
            {
              type: 'hbox',
              widths: ['50%', '50%'],
              children: [
                {
                  id: 'scrolling',
                  type: 'checkbox',
                  requiredContent: 'iframe[scrolling]',
                  label: f.scrolling,
                  setup: c,
                  commit: d,
                },
                {
                  id: 'frameborder',
                  type: 'checkbox',
                  requiredContent: 'iframe[frameborder]',
                  label: f.border,
                  setup: c,
                  commit: d,
                },
              ],
            },
            {
              type: 'hbox',
              widths: ['50%', '50%'],
              children: [
                {
                  id: 'name',
                  type: 'text',
                  requiredContent: 'iframe[name]',
                  label: a.name,
                  setup: c,
                  commit: d,
                },
                {
                  id: 'title',
                  type: 'text',
                  requiredContent: 'iframe[title]',
                  label: a.advisoryTitle,
                  setup: c,
                  commit: d,
                },
              ],
            },
            {
              id: 'longdesc',
              type: 'text',
              requiredContent: 'iframe[longdesc]',
              label: a.longDescr,
              setup: c,
              commit: d,
            },
          ],
        },
        e && e.createAdvancedTab(b, { id: 1, classes: 1, styles: 1 }, 'iframe'),
      ],
    };
  });
})();
